perm filename TVSER.SAI[SYS,HE]1 blob
sn#004256 filedate 1972-08-01 generic text, type T, neo UTF8
00100 ⊃ Needs the following to be declared or defined:
00200 INTEGER EXFLAG,MINI,MAXI INTEGER ARRAY HIST[-1:16] DEFINE WINDOW,CRLF,⊃;
00300
00400 SIMPLE PROCEDURE INPUT;
00500 BEGIN "INPUT"
00600 EXTERNAL PROCEDURE TVIN;
00800 EXTERNAL INTEGER TCLIP,BCLIP,FLINE,LLINE,LSIDE,RSIDE,TVCAM;
00900
01000 IF ((TVCAM←LOOK_AT[1])≠1)∧(TVCAM≠2) THEN BEGIN
01100 OUTSTR("INPUT-FAILED: ILLEGAL CAM NO. (TVCAM="&CVS(TVCAM)&")"CRLF);
01200 EXFLAG←1; RETURN; END;
01300
01400 IF ((LSIDE←LOOK_AT[2]-(LOOK_AT[4] DIV 2))<1)∨
01450 ((RSIDE←LSIDE+LOOK_AT[4]-1)>330)∨(RSIDE≤LSIDE)∨
01500 ((FLINE←LOOK_AT[3]-(LOOK_AT[5] DIV 2))<1)∨
01550 ((LLINE←FLINE+LOOK_AT[5]-1)>250)∨(LLINE≤FLINE)
01600 THEN BEGIN OUTSTR("INPUT-FAILED: ILLEGAL WINDOW"CRLF);
01700 EXFLAG←1; RETURN; END;
01800
01900 IF ((BCLIP←LOOK_AT[7])<0)∨(BCLIP>7)∨((TCLIP←LOOK_AT[6])<0)∨
02000 (TCLIP>7)∨(TCLIP>BCLIP) THEN BEGIN
02100 OUTSTR("INPUT-FAILED: ILLEGAL CLIPS (TCLIP="&CVS(TCLIP)&
02200 " BCLIP="&CVS(BCLIP)&")"CRLF); EXFLAG←1; RETURN; END;
02300
02400 TVIN;
02500 END "INPUT";
02600
02700 SIMPLE PROCEDURE HISTO;
02800 BEGIN INTEGER I,X,Y;
02900 EXTERNAL INTEGER PROCEDURE GETPNT(INTEGER X,Y);
03000
03100 ⊃ Compute the histogram;
03200 FOR I←0 STEP 1 UNTIL 15 DO HIST[I]←0;
03300 FOR WINDOW DO BEGIN
03400 I←GETPNT(X,Y); HIST[I]←HIST[I]+1; END;
03500
03600 ⊃ Find boundary levels;
03700 I←0; WHILE (HIST[I]=0)∧(I<15) DO I←I+1; MINI←I;
03800 I←15; WHILE (HIST[I]=0)∧(I>0) DO I←I-1; MAXI←I;
03900 IF DEB_EYE THEN OUTSTR("HISTO: MINI="&CVS(MINI)&" MAXI="&CVS(MAXI)CRLF);
04000 END "HISTO";
04100
04200 SIMPLE PROCEDURE SETCLIP;
04300 BEGIN INTEGER X,Y;
04400 LOOK_AT[6]←0; LOOK_AT[7]←7; INPUT; IF EXFLAG≠0 THEN RETURN; HISTO;
04500 LOOK_AT[6]←(15-MAXI) DIV 2; LOOK_AT[7]←(15-MINI) DIV 2
04600 END"SETCLIP";
00100 SIMPLE PROCEDURE SETWINDOW;
00200 BEGIN INTEGER XPOT,YPOT,MAN,FLAG;
00300 LABEL WOD;
00400 EXTERNAL INTEGER PROCEDURE POTABS(INTEGER CHAN;REFERENCE INTEGER FLAGO);
00500 LOOK_AT[6]←0; LOOK_AT[7]←7;
00600 WOD: OUTSTR("...TYPE CAMERA NO.="CRLF); LOOK_AT[1]←CVD(INCHWL);
00700 OUTSTR("...TYPE WIDTH OF WINDOW="CRLF); LOOK_AT[4]←CVD(INCHWL);
00800 OUTSTR("...TYPE HIGHT OF WINDOW="CRLF); LOOK_AT[5]←CVD(INCHWL);
00900 OUTSTR("...TYPE Y TO SET CENTER OF WINDOW FROM POTBOX:"CRLF);
01000 IF YES THEN BEGIN MAN←1;
01100 OUTSTR("...CHANGE POTS 12 AND 13 TO MOVE THE WINDOW ..."CRLF); END
01200 ELSE BEGIN MAN←0;
01300 OUTSTR("...TYPE X COORDINATE OF WINDOW CENTER="CRLF);
01400 LOOK_AT[2]←CVD(INCHWL);
01500 OUTSTR("...TYPE Y COORDINATE OF WINDOW CENTER="CRLF);
01600 LOOK_AT[3]←CVD(INCHWL); END;
01700 OUTSTR("...TYPE Y WHEN DONE,OR R TO RESTART:"CRLF);
01800 FLAG←1;
01900 WHILE FLAG DO BEGIN IF INCHSL(FLAG)="R" THEN GOTO WOD;
02000 IF MAN=1 THEN BEGIN
02100 XPOT←POTABS(1,DUMMY);
02200 YPOT←POTABS(2,DUMMY);
02300 LOOK_AT[2]←167+XPOT/13; LOOK_AT[3]←125+YPOT/17; END;
02400 INPUT; IF EXFLAG≠0 THEN BEGIN EXFLAG←0; GOTO WOD; END;
02500 END;
02600 CLRBUF;
02700 END "SETWINDOW";